<?php
namespace Fiestissima\CRM\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="c_disc", type="string")
 * @ORM\DiscriminatorMap({"persona" = "ClientePersona", "empresa" = "ClienteEmpresa"})
 * @ORM\Table(name="cliente")
 */
abstract class Cliente
{
	/**
	 * @ORM\Column(type="integer")
	 * @ORM\Id
	 */
	protected $c_id;
	
	/**
	 * @ORM\Column(type="string")
	 */
	protected $c_tipo_doc;
	
	/**
	 * @ORM\Column(type="string")
	 */
	protected $c_nro_doc;
	
	/**
	 * @ORM\Column(type="string")
	 */
	protected $c_tipo_iva;

    /**
     * @ORM\OneToMany(targetEntity="OrdenCompra", mappedBy="cliente")
     *
     */
    protected $ordenCompraCliente;

    /**
     * Set c_id
     *
     * @param integer $cId
     * @return Cliente
     */
    public function setCId($cId)
    {
        $this->c_id = $cId;

        return $this;
    }

    /**
     * Get c_id
     *
     * @return integer 
     */
    public function getCId()
    {
        return $this->c_id;
    }

    /**
     * Set c_tipo_doc
     *
     * @param string $cTipoDoc
     * @return Cliente
     */
    public function setCTipoDoc($cTipoDoc)
    {
        $this->c_tipo_doc = $cTipoDoc;

        return $this;
    }

    /**
     * Get c_tipo_doc
     *
     * @return string 
     */
    public function getCTipoDoc()
    {
        return $this->c_tipo_doc;
    }

    /**
     * Set c_nro_doc
     *
     * @param string $cNroDoc
     * @return Cliente
     */
    public function setCNroDoc($cNroDoc)
    {
        $this->c_nro_doc = $cNroDoc;

        return $this;
    }

    /**
     * Get c_nro_doc
     *
     * @return string 
     */
    public function getCNroDoc()
    {
        return $this->c_nro_doc;
    }

    /**
     * Set c_tipo_iva
     *
     * @param string $cTipoIva
     * @return Cliente
     */
    public function setCTipoIva($cTipoIva)
    {
        $this->c_tipo_iva = $cTipoIva;

        return $this;
    }

    /**
     * Get c_tipo_iva
     *
     * @return string 
     */
    public function getCTipoIva()
    {
        return $this->c_tipo_iva;
    }
    /**
     * Constructor
     */
    public function __construct()
    {
        $this->ordenCompraCliente = new \Doctrine\Common\Collections\ArrayCollection();
    }

    /**
     * Add ordenCompraCliente
     *
     * @param \Fiestissima\CRM\Entity\OrdenCompra $ordenCompraCliente
     * @return Cliente
     */
    public function addOrdenCompraCliente(\Fiestissima\CRM\Entity\OrdenCompra $ordenCompraCliente)
    {
        $this->ordenCompraCliente[] = $ordenCompraCliente;

        return $this;
    }

    /**
     * Remove ordenCompraCliente
     *
     * @param \Fiestissima\CRM\Entity\OrdenCompra $ordenCompraCliente
     */
    public function removeOrdenCompraCliente(\Fiestissima\CRM\Entity\OrdenCompra $ordenCompraCliente)
    {
        $this->ordenCompraCliente->removeElement($ordenCompraCliente);
    }

    /**
     * Get ordenCompraCliente
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getOrdenCompraCliente()
    {
        return $this->ordenCompraCliente;
    }
}
